/**
 * Template management related types
 */

export interface Template {
  id: string;
  name: string;
  framework: string;
  fileType: string;
  content: string;
  description?: string;
  createdAt: string;
  updatedAt: string;
  createdBy?: string;
  isDefault: boolean;
  version: string;
  tags: string[];
}

export interface TemplateCategory {
  id: string;
  name: string;
  description: string;
  templateCount: number;
  icon?: string;
}

export interface TemplateVersion {
  id: string;
  templateId: string;
  version: string;
  content: string;
  createdAt: string;
  createdBy?: string;
  description?: string;
}

export interface TemplateState {
  templates: Template[];
  categories: TemplateCategory[];
  searchQuery: string;
  selectedTemplate: Template | null;
  editingTemplate: Template | null;
  loading: boolean;
  error: string | null;
  currentPage: number;
  pageSize: number;
  totalCount: number;
  isImporting: boolean;
  importProgress: number;
}